/**
 * Importação das bibliotecas necessárias para a implementação da classe.
 */
import java.util.Date;
import java.util.GregorianCalendar;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * 
 * Universidade de Brasília - Gama
 * Sistema de Análise de Investimentos de Bolsa de Valores - Projeto de Técnicas de Programação
 * @author Filipe Barbosa de Almeida - 09/0006097
 * @author Gabriela Matias Navarro - 09/0006526
 * @author Renato Guibson Girardi - 09/0013204
 */
public class Util {
    
   public static boolean password(String password,String repeatPassword){
       
       if (password.equalsIgnoreCase(repeatPassword))
            return true;
   
       else
             return false;
   }
    
    public static boolean validaCPF(String s_aux) {
		if (s_aux.length() == 11 )
	       {
	           int     d1, d2; 
	           int     digito1, digito2, resto; 
	           int     digitoCPF; 
	           String  nDigResult; 
	           d1 = d2 = 0; 
	           digito1 = digito2 = resto = 0; 
	           for (int n_Count = 1; n_Count < s_aux.length() -1; n_Count++) 
	           { 
	              digitoCPF = Integer.valueOf (s_aux.substring(n_Count -1, n_Count)).intValue(); 
	//--------- Multiplique a ultima casa por 2 a seguinte por 3 a seguinte por 4 e assim por diante. 
	              d1 = d1 + ( 11 - n_Count ) * digitoCPF; 
	//--------- Para o segundo digito repita o procedimento incluindo o primeiro digito calculado no passo anterior. 
	              d2 = d2 + ( 12 - n_Count ) * digitoCPF; 
	           }; 
	//--------- Primeiro resto da divisão por 11. 
	           resto = (d1 % 11); 
	//--------- Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior. 
	           if (resto < 2) 
	              digito1 = 0; 
	           else 
	              digito1 = 11 - resto; 
	           d2 += 2 * digito1; 
	//--------- Segundo resto da divisão por 11. 
	           resto = (d2 % 11); 
	//--------- Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior. 
	           if (resto < 2) 
	              digito2 = 0; 
	           else 
	              digito2 = 11 - resto; 
	//--------- Digito verificador do CPF que está sendo validado. 
	           String nDigVerific = s_aux.substring (s_aux.length()-2, s_aux.length()); 
	//--------- Concatenando o primeiro resto com o segundo. 
	           nDigResult = String.valueOf(digito1) + String.valueOf(digito2); 
	//--------- Comparar o digito verificador do cpf com o primeiro resto + o segundo resto. 
	           return nDigVerific.equals(nDigResult); 
	        }
    else 
        return false;
	}
	

	
public static void validarValorInicial(int valor)throws ValorInvalidoException{
	
	if (valor<0){
	
		ValorInvalidoException e = new ValorInvalidoException();
	throw e;
	}
	
}
	  

public static boolean validaData(String data) {   
    GregorianCalendar calendar =  new GregorianCalendar();  
  
    int dia,mes,ano;   
    String diaStr = data.substring(0,2);  
    String mesStr = data.substring(3,5);   
    String anoStr = data.substring(6,10);   
    try {   
        dia = Integer.parseInt(diaStr);   
        mes = Integer.parseInt(mesStr);   
        ano = Integer.parseInt(anoStr);   
    } catch (Exception e) {   
        return false;   
    }   
    if (dia < 1 || mes < 1 || ano < 1)   
        return false;   
    else   
        if (mes == 01 || mes == 03 || mes == 05 || mes == 07 || mes == 8 || mes == 10 || mes == 12)   
            if (dia <= 31)   
                return true;   
            else   
                return false;   
        else   
            if (mes == 4 || mes == 6 || mes == 9 || mes == 11)   
                if (dia <= 30)   
                    return true;   
                else   
                    return false;   
            else   
                if (mes == 2)   
                    if (calendar.isLeapYear(ano))   
                        if (dia <= 29)   
                            return true;   
                        else   
                            return false;   
                    else   
                        if (dia <= 28)   
                            return true;   
                        else   
                            return false;   
                else   
                    if (mes > 12)   
                        return false;   
    return true;   
}   
    
}
